<!DOCTYPE html>
<html>

  <head>
	<meta charset="UTF-8">
	<title>Xtext - Xtext 2.9 Beta</title>
	
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description"
		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
	<meta name="author" content="Sven Efftinge">
	<meta name="author" content="Miro Spoenemann">
	<!--  styles -->
	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
	<!--[if lt IE 9]>
	  <script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	
	<!-- Le fav and touch icons -->
	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
	
	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
	<!-- cover flow -->
	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
	<!--[if lt IE 9]>
	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
	<![endif]-->

	<!-- BEGIN Cookie Consent
	<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
	<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
	<script>
	window.addEventListener("load", function(){
	window.cookieconsent.initialise({
		"palette": {
		"popup": {
		  "background": "#000"
		},
		"button": {
		  "background": "#f1d600"
		}
		},
		"theme": "edgeless",
		"type": "opt-in",
		onInitialise: function (status) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		},
		onStatusChange: function(status, chosenBefore) {
		  var type = this.options.type;
		  var didConsent = this.hasConsented();
		  if (type == 'opt-in' && didConsent) {
		    // TODO: enable cookies
		  }
		  if (type == 'opt-out' && !didConsent) {
		    // TODO: disable cookies
		  }
		}, 
		onRevokeChoice: function() {
		  var type = this.options.type;
		  if (type == 'opt-in') {
		    // TODO: disable cookies
		  }
		  if (type == 'opt-out') {
		    // TODO: enable cookies
		  }
		},
		"content": {
		"href": "https://www.eclipse.org/legal/privacy.php"
		}
	})});
	</script>
	END Cookie Consent -->
</head>


  <body>
  
    <header class="site-header">

  <!-- Navbar -->
  <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container">
        <a class="btn btn-navbar" data-toggle="collapse"
          data-target=".nav-collapse"> <span class="icon-bar"></span> <span
          class="icon-bar"></span> <span class="icon-bar"></span>
        </a> <a class="brand" href="/Xtext/index.html"></a>
        <div class="nav-collapse collapse" style="height: 0px;">
          <ul class="nav">
            <!--li ><a href="/Xtext/news.html">News</a></li-->
            <li ><a href="/Xtext/download.html">Download</a></li>
            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
            <li ><a href="/Xtext/community.html">Community</a></li>
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://info.itemis.com/professional-xtext-support" target="_blank">itemis</a></li>
                <li><a href="https://www.typefox.io/language-engineering/" target="_blank">TypeFox</a></li>
              </ul>
            </li>
            <li ><a href="https://eclipse.dev/Xtext/xtend">Xtend</a></li>
          </ul>
          <!--div class="nav pull-right">
            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
          </div-->
        </div>
        <!--/.nav-collapse -->
      </div>
    </div>
  </div>
  <!-- Navbar End -->

</header>


    <div class="page-content">
  <div class="wrapper">
    <div id="page">  
    	<div class="inner">
    		<br/><br/>
    		<div id="maincontainer" class="container">
    			<div class="span8 offset1">
    				<h1>Xtext 2.9 Beta</h1>
    				<h4>May 22, 2015</h4>
    				<br/>
    				<p>(for download instructions, <a href="#download-links">see below</a>)</p>

<p>The main theme of our ongoing work in Xtext &amp; Xtend 2.9 is to reach out to other tools and platforms. After seven years of development, Xtext has become the de facto standard for implementing programming languages and external domain specific languages and IDE support for Eclipse. A couple of months ago, we announced that we have now started to extract the IDE-related infrastructure from Eclipse, such that it can be used in other scenarios as well.</p>

<p>Today we want to give early adopters a chance to test the current status quo and provide feedback (you always could do that, since everything we do is open-source). The “2.9 Beta” we are putting out today is a frozen state of the head, that was tested just a bit and has known issues. So it’s not an actual release and you should not use it in production! Still, it comes with some new stuff that might be interesting:</p>

<h3 id="intellij-idea-support">IntelliJ IDEA Support</h3>

<p>With 2.9 you will be able to produce a feature-rich plug-in not only for Eclipse, but also for IntellIj IDEA, from the same language description. The IntelliJ editor already supports syntax coloring and content assist and even some rename refactoring works. Also, we have been working on an incremental standalone compiler, that is used by IDEA, and automatically runs the code generators for the changed and affected files.</p>

<p>The IDEA integration hasn’t been so easy, because IDEA is already a rich platform and it’s a bit challenging to map IDEA’s concepts with ours in performant ways. So there is still some work ahead of us, especially in the case of Xbase and Xtend, where a seamless integration with the Java IDE is our goal. We are simply not there yet and especially the integration with Java is still in a very early and bad stage. If you have Xtext DSLs that don’t use Xbase, there is a lot that works quite well already.</p>

<p>Stefan has written up more infos about the IntellIJ IDEA part <a href="https://oehme.github.io/2015/05/22/xtext-intellij-beta.html">here</a>.</p>

<h3 id="weborion-support">Web/Orion Support</h3>

<p>The other part we wanted to share and get feedback on, is the early state of our web support. Same story: <b>don’t use it in production</b>! The Xtext project wizard can create a web project, which provides you with an example html webpage, an orion editor and a java-based server backend for the editor. Syntax Coloring is done entirely in the browser, while validation and content assist are provided by the server. The server side really just projects tool support on that widget and doesn’t need any other integration with your web application, just use the orion editor as a feature rich text widget.</p>

<p>The client-server communication already uses an optimized communication protocol based on text-deltas and it features a cancelation policy that will avoid any unnecessary processes. Even with large documents response time is very good.</p>

<p>Miro has written a more detailed post about this over <a href="https://spoenemann.blogspot.de/2015/05/editing-dsls-in-web-browser.html">here</a>.</p>

<p>To try it out, just download (see below) and use the new “Xtext project wizard” to create a fresh Xtext language with a dedicated project for the web support.</p>

<p><img src="/Xtext/images/news/xtext-2.9-wizard.png" alt="the new wizard" /></p>

<p>Please tell us, what you would like to do with this. Bug reports and feature requests go here : <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=TMF&amp;component=Xtext">bugs.eclipse.org</a></p>

<h3 id="other-themes-in-29">Other Themes In 2.9</h3>

<p>Besides the web and IDEA support, we are working on making it even simpler to build Xtext projects. One goal for instance is to allow for xtext projects without any Eclipse dependency, such that you can just use the runtime and build and deploy it with Maven or Gradle. In addition we will again spend much time on improving the overall performance and bugfixes of course.</p>

<h3 id="more-updates-soon">More updates soon</h3>

<p>The 2.9 release is planned for autumn 2015 and shall come with production ready support for IDEA and Web. Until then we will likely have more beta releases, depending on demand and progress.</p>

<h3 id="download-links">Download Links</h3>

<p>Here are the download links for the beta:</p>

<p>Ready to use eclipse distributions:</p>
<ul>
  <li><a href="https://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-win32-x86_64.zip&amp;r=2">eclipse-dsl-beta5-win32-x86_64.zip</a></li>
  <li><a href="https://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-macosx-cocoa-x86_64.tar.gz&amp;r=2">eclipse-dsl-beta5-macosx-cocoa-x86_64.tar.gz</a></li>
  <li><a href="https://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-linux-gtk-x86_64.tar.gz&amp;r=2">eclipse-dsl-beta5-linux-gtk-x86_64.tar.gz</a></li>
  <li><a href="https://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-win32.zip&amp;r=2">eclipse-dsl-beta5-win32.zip</a></li>
  <li><a href="https://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-linux-gtk.tar.gz&amp;r=2">eclipse-dsl-beta5-linux-gtk.tar.gz</a></li>
</ul>

<p>Eclipse update site : <a href="https://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/]">https://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/</a><br />
IDEA plug-in repository : <a href="https://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml">https://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml</a></p>


    			</div>
    		</div>
      </div>
    </div>
  </div>
</div>
    
    <footer class="site-footer">
  <div id="extra">
    <div class="inner">
      <div class="container">
        <div class="row">
          <div class="span6">
            <h3 class="footer-links-header">Quick Links</h3>
            <ul class="footer-links clearfix">
              <li><a href="https://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
              <li><a href="https://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
              <li><a href="https://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
              <li><a href="https://www.eclipse.org/legal/">Legal</a></li>
            </ul>
            <ul class="footer-links clearfix">
              <li><a href="https://www.eclipse.org">Eclipse Home</a></li>
              <li><a href="https://marketplace.eclipse.org/">Market Place</a></li>
              <li><a href="https://www.planeteclipse.org/">Eclipse Planet</a></li>
              <li><a href="https://www.eclipse.org/forums/index.php/f/27/">Xtext Forum</a></li>
            </ul>
            <br/><br/>
            Xtext is a trademark of the Eclipse Foundation, Inc. and is used with permission
            <br/><br/>
            <img src="/Xtext/images/eclipse-foundation-white-orange.svg" alt="Eclipse Foundation"/>
          </div>
          <div class="span6">
            <!-- Social Media Links -->
            <h3 class="footer-links-header">Social Media</h3>
            <ul class="footer-links clearfix">
              <li>
                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>
  </div>
  <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
  <!-- Le javascript
      ================================================== -->
  <!-- Placed at the end of the document so the pages load faster -->
  
  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
  <script src="/Xtext/js/bootstrap.min.js"></script>
  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
  <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
  <!--script type="text/javascript">
    var _gaq = _gaq || [];  
      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
    _gaq.push([ '_trackPageview' ]);
    (function() {
      var ga = document.createElement('script');
      ga.type = 'text/javascript';
      ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl'
          : 'https://www')
          + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0];
      s.parentNode.insertBefore(ga, s);
    })();
  </script-->
  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
  <script>
      $(function() {
        $('#coverflow').coverflow({
          active : 1,
          visibleAside: 2,
          overlap : 0.5,
          scale : 0.9,
          angle : 20,
          trigger : {
            "itemfocus" : true,
            "swipe" : true,
            "mousewheel" : false
          }
        });
        $('#coverflow :hidden').toggle();
        $(window).resize(function() {
          $('#coverflow').coverflow();
        });
      });

  </script>
</footer>


  </body>

</html>
